Method and system for selection of cloud-computing services

ABSTRACT

An engine for allocation of cloud computing resources to clients of cloud computing facilities (simply referenced as “clouds”) collects data relevant to resource availability and characteristics of several clouds and determines for each sought service a cloud of highest service-specific appraisal. Data corresponding to each characteristic is canonicalized to produce corresponding merits for each cloud where each merit is dimensionless, bounded within a predefined interval, and oriented so that a merit increment increases an overall appraisal of a respective cloud. Consequently, a merit vector is created for each cloud. Upon receiving a service request from a client, requisite resources as well as a significance vector indicating significance of each characteristic to the requested service are determined. An appraisal of a cloud is determined as a dot product of the significance vector and the merit vector of the cloud. The cloud of highest appraisal is allocated to the service.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application claims the benefit of provisional application62/722,587, entitled “Method and System for Intelligent placement ofservices within a Hybrid Cloud Environment”, filed Aug. 24, 2018, theentire content of which is incorporated herein by reference.

FIELD OF THE INVENTION

The present invention is directed towards optimal selection of cloudsfor clients seeking cloud-computing services.

BACKGROUND

A hybrid cloud has a number of private clouds (based on virtualizationtechniques) or public clouds that host services required by anorganization. Public clouds offer cost-effective computing, storage, andother services such as analytics or content delivery, while privateclouds deliver unrivaled control and security to meet business demands.Multiple public cloud providers are often used in a single hybrid cloud,with varying prices and ever-expanding capabilities. Private datacenters frequently incorporate many different types of hardwareproviding a wide variety of capabilities. Different types of public andprivate clouds require different placement rules. There is no one-to-onemapping between the capabilities of different environments, making theircomparison difficult. Deployment environments are often shared amongmany tenants, leading to an environment that is in constant flux interms of capability and capacity. Placement of a service must balanceout an arbitrary number of factors, such as cost, compatibility,capacity. The needs of different services vary widely, and the types ofplacement requirements also vary widely from one organization toanother.

There is a need, therefore, to explore means for automatically matchingclouds to sought services taking into account varying properties ofavailable clouds.

SUMMARY

In accordance with an aspect, the invention provides a method ofallocating cloud computing resources to clients of cloud computingfacilities. The method is implemented using a placement engine having atleast one hardware processor coupled to memory devices storing processorexecutable instructions causing the at least one processor to performprocesses of collecting data relevant to resource availability andcharacteristics of several clouds and determining for each soughtservice a cloud of highest service-specific appraisal.

Initially, the engine performs a process of acquiring from each cloud ofa plurality of clouds data defining available resources as well asindividual valuations of characteristics of a set of predefinedcharacteristics. For each characteristic of the set of predefinedcharacteristics, the engine performs a process of canonicalization ofvaluations of the each characteristic corresponding to all clouds todetermine corresponding merits where each merit is dimensionless,bounded within a predefined interval, and oriented so that an incrementof the each merit increases an appraisal of a respective cloud.

Upon receiving, from a client, a service request specifying a servicetype of a set of predefined service types, the engine performs a processof acquiring data defining requisite resources for the service type aswell as a significance vector comprising an indicator of significance ofeach characteristic to the service type.

An appraisal of each cloud having available resources to provide therequisite resources is then determined as a function of respectivemerits and the significance vector. The engine instructs the client todirect the service request to a cloud of highest appraisal.

According to a preferred implementation of the aforementioned function,all merits determined according to the canonicalizing process areorganized into a plurality of merit vectors, each merit vectorcomprising merits corresponding to: a respective cloud; and each of thepredefined characteristics considered in a predetermined order. Thefunction is then implemented as a dot product of a merit vector of acloud and the significance vector.

According to a first implementation of the canonicalization process, thecharacteristics are considered one at a time, and for eachcharacteristic, corresponding valuations for all of the clouds areexamined to determine a respective minimum valuation X_(min) and arespective maximum valuation X_(max) for each characteristic underconsideration.

The set of predefined characteristics may comprise at least one type-1characteristic where increasing a respective valuation increases arespective cloud appraisal. For a specific type-1 characteristic, of aspecific cloud, the characteristic having a valuation x, a correspondingmerit is determined as:

μ_(x)=(x−X _(min))/(X _(max) −X _(min)).

The set of predefined characteristics may comprise at least one type-2characteristic where decreasing a respective valuation increases arespective cloud appraisal. For a specific type-2 characteristic, of aspecific cloud, the characteristic having a valuation x, a correspondingmerit is determined as:

μ_(x)=(X _(max) −x)/(X _(max) −X _(min)).

According to a second implementation of the canonicalization process,the characteristics are considered one at a time, and for eachcharacteristic a respective predefined reference valuation X_(ref) isacquired.

For a specific type-1 characteristic, of a specific cloud, thecharacteristic having a valuation x, a corresponding merit is determinedas:

μ_(x) =x/(x+X _(ref)).

For a specific type-2 characteristic, of a specific cloud, thecharacteristic having a valuation x, a corresponding merit is determinedas:

μ_(x) =X _(ref)/(x+X _(ref)).

According to a third implementation of the canonicalization process, thecharacteristics are considered one at a time, and for eachcharacteristic, a cumulative distribution of corresponding valuationsfor all of the clouds is generated.

A respective valuation lower bound V_(min) corresponding to a predefinedvalue a₁ of the cumulative distribution is determined, and a respectivevaluation upper bound V_(max) corresponding to a predefined value a₂ ofthe cumulative distribution is determined, 0.0<a₁<a₂<1.0.

For a specific type-1 characteristic, of a specific cloud, thecharacteristic having a valuation x, a corresponding merit is determinedas:

μ_(x)=0.0 for x<V _(min);

μ_(x)=(x−V _(min))/(V _(max) −V _(min)), for V _(min) ≤x≤V _(max)

μ_(x)=1.0for x>V _(max).

For a specific type-2 characteristic, of a specific cloud, thecharacteristic having a valuation x, a corresponding merit is determinedas:

μ_(x)=1.0 for x<V _(min);

μ_(x)=(V _(max) −x)/(V _(max) −V _(min)), for V _(min) ≤x≤V _(max)

μ_(x)=0.0for x>V _(max).

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the present invention will be further described withreference to the accompanying exemplary drawings, in which:

FIG. 1 illustrates a system for expediting and enhancing cloud-computingservices based on deployment of placement engines, in accordance with anembodiment of the present invention;

FIG. 2 illustrates a modular placement engine comprising acloud-characterization module, a storage medium, and a cloudrecommendation module;

FIG. 3 illustrates a variation of the modular placement engine of FIG.2;

FIG. 4 illustrates organization of a cloud-characterization module 220;

FIG. 5 illustrates organization of a cloud recommendation module 260;

FIG. 6 illustrates an arrangement of the system of FIG. 1 where a clientof plurality of clients communicates with any placement engine of aplurality of placement engines through a network, in accordance with anembodiment of the present invention;

FIG. 7 illustrates operation of a placement engine, in accordance withan embodiment of the present invention;

FIG. 8 illustrates interaction of a cloud characterization module of aplacement engine with a set of clouds through the network of FIG. 6 foracquisition of cloud characteristics;

FIG. 9 illustrates interaction of an integrated placement engine with aset of clouds through the network of FIG. 6 for acquisition of cloudcharacteristics;

FIG. 10 illustrates interaction of clients 110 with a cloud selectionmodule to determine preferred clouds, in accordance with an embodimentof the present invention;

FIG. 11 illustrates interaction of clients 110 with a placement engineto determine preferred clouds, in accordance with an embodiment of thepresent invention;

FIG. 12 illustrates organization of resource-availability data acquiredfrom cloud-characterization storage medium, in accordance with anembodiment of the present invention;

FIG. 13 illustrates organization of cloud-valuation data acquired fromcloud-characterization storage medium;

FIG. 14 illustrates canonicalization of cloud-valuation data, inaccordance with an embodiment of the present invention;

FIG. 15 illustrates canonicalization of type-1 characteristics valuationwhere the valuation trends towards optimality as the valuationincreases;

FIG. 16 illustrates canonicalization of type-2 characteristicsvaluations where the valuation trends towards optimality as thevaluation decreases;

FIG. 17 illustrates cloud-characteristics and derived cloud meritvectors according to a first criterion, in accordance with an embodimentof the present invention;

FIG. 18 illustrates organization of resource-requirement data fordifferent service types, in accordance with an embodiment of the presentinvention;

FIG. 19 illustrates data used for determining eligible clouds from amonga target set of clouds;

FIG. 20 illustrates organization of significance coefficients of cloudcharacteristics for each service type for a specific client or aspecific client group into vectors of significant coefficients, inaccordance with an embodiment of the present invention;

FIG. 21 illustrates a vector of significance coefficients with respectto a specific client independent of service type, in accordance with anembodiment of the present invention;

FIG. 22 illustrates cloud compatibility for each predefined servicetype;

FIG. 23 illustrates matrix of client-cloud distances/propagation delays,in accordance with an embodiment of the present invention;

FIG. 24 illustrates processes of determining cloud merit vectors, inaccordance with an embodiment of the present invention; and

FIG. 25 illustrates processes of cloud selection;

TERMINOLOGY

Cloud: A computing facility that provides computing resources on demandis conventionally referenced as a cloud.

Characteristic: The characteristic of a cloud is an attribute of thecloud, such as capacity, or am implication of engaging a cloud, such ascost.

Valuation: A valuation is a magnitude of a characteristic, in otherwords, valuation is a (numerical) measure of a characteristic.

Type-1 characteristic: A characteristic an increment of valuation ofwhich increases an overall appraisal of a respective cloud is a type-1characteristic. Processing capacity is a type-1 characteristic.

Type-2 characteristic: A characteristic a decrement of valuation ofwhich increases an overall appraisal of a respective cloud is a type-2characteristic. Delay is a type-2 characteristic and service cost is atype-2 characteristic.

Canonicalization: Canonicalization is a transformation that combinesnormalization and rectification of valuation to produce a correspondingcanonical merit that is:

-   -   (1) bounded within a predefined interval, preferably the closed        interval [0.0, 1.0];    -   (2) dimensionless; and    -   (3) uniformly oriented (rectified) so that an increment of a        merit increases an overall appraisal of a respective cloud        whether the merit represents a type-1 characteristic or a type-2        characteristic.

Merit: A canonical merit resulting from canonicalization of valuation oda characteristic is also referenced as “merit” for brevity.

Dot product: The dot product used in the present specification isconsistent with the formal definition where the dot product of a firstvector {x₀, x₁ . . . . , x_((n-1))} and a second vector {y₀, y₁, . . . ,y_((n-1)))} is a scalar [x₀×y₀+x₁×y₁+ . . . +x_((n-1))×y_((n-1))], n>1.

Processor: The term refers to a hardware device (a physical processingdevice) which typically accesses at least one memory device storingprocessor executable instructions.

REFERENCE NUMERALS

-   100: System for educated automatic selection of cloud computing    servers comprising a plurality of placement engines-   102: A plurality of clients of a plurality of computing facilities    (a plurality of “clouds”)-   110: An individual client-   112: A plurality of clouds-   120: An individual cloud-   122: Metadata and bulk data exchanged between the plurality of    clients and the plurality of clouds-   150: A plurality of placement engines-   160: An individual placement engine-   162: Service definition communicated to a placement engine of a    plurality of placement engines-   164: Cloud discovery data exchanged between-   168: Placement recommendation sent from a placement engine to a    client-   220: Cloud characterization module-   240: Storage medium holding cloud-characterization data-   260: Cloud selection) recommendation module-   300: Arrangement where multiple cloud-recommendation modules contend    for access to a single storage medium 240-   600: Distributed system for enabling a plurality of clients to    automatically select respective clouds-   620: A global network interconnecting clients, clouds 120, storage    media 240, placement engines 160, cloud-characterization modules    220, and cloud recommendation modules 260.-   700: Overview of the functions of a placement engine 160-   720: Service definition module-   730: Resource availability data-   740: Cloud-valuation data-   750: Request for cloud service received from a client 110-   770: Data identifying required resources-   780: Data identifying relevance of requested service to cloud    characteristics-   800: Example of a cloud selection module 260 communicating with a    set of clouds within the distributed system 600 for cloud    characteristics acquisition-   850: Communication paths through the network connecting a cloud    characterization module to a plurality of clouds-   900: Example of placement engine 160 communicating with a set of    clouds within the distributed system 600 for cloud characteristics    acquisition-   950: Communication paths through the network connecting a placement    engine to a plurality of clouds-   1000: Example of interaction of clients 110, a cloud selection    module, and a storage medium-   240 to determine preferred clouds-   1010: Path through a network-   1100: Example of interaction of clients 110, a placement engine, and    a storage medium 240 to determine preferred clouds-   1110: Path through a network-   1210: Resource type-   1220: Nominal resource-allocation threshold-   1240: Current (time-varying) resource-allocation threshold-   1310: Cloud characteristic index-   1320: Valuation of a specific characteristic of a specific cloud-   1400: Merit vectors based on cloud-valuation data of FIG. 13-   1440: Merit vector of a specific cloud-   1710: Valuation matrix-   1720: merit matrix-   1740: Exemplary valuations of cloud characteristics-   1750: Merit vectors derived from valuations 1740-   1820: List of nominal resource requirements for a specific service    type-   1840: List of current resource requirements for a specific service    type-   1900: Data used for determining eligible clouds for a specific    service-   2000: Significance vectors corresponding to service types for a    specific client or a specific client group-   2020: Significance coefficient of a cloud coefficient with respect    to a specific service type for a specific client-   2040: A vector of significance coefficients with respect to a    specific service type for a specific client or a specific client    group-   2120: Significance coefficient of a cloud coefficient with respect    to a specific client, independent of service type-   2140: A vector of significance coefficients with respect to a    specific client-   2200: Matrix of service-cloud compatibility-   2210: A compatible cloud for a specified service-   2220: An incompatible cloud for a specified service-   2300: Client-cloud distance matrix-   2310: Client index-   2320: Distance from a client device to a specific cloud-   2400: Processes of determining cloud merit vectors-   2500: Processes of cloud selection

DETAILED DESCRIPTION

A conventional cloud-computing system enables a community of clients tocommunicate with clouds (computing facilities) to request servicesrequiring web services, data storage, and various levels of dataprocessing. A client may send a request for service to a selected cloudspecifying service requirements. The client and the selected cloudexchange data to establish a service session.

Typically, individual clouds have different processing capabilities,storage capacities, and networking features. A client may be anindividual user or a business organization. A business organization mayrequest services of different types with varying degrees of resourcerequirements and service-quality requirements. A client may engage anycloud of a respective designated subset of clouds and initiate servicesessions as the need arises. Consequently, any cloud may be activelyproviding service to several clients concurrently. Naturally, theclients' activities are uncoordinated. Thus, while the combinedprovisioned resources of client-accessible clouds may exceed the overallresource requirements of the entire community of users, the fluctuatingresource occupancies of the individual clouds may lead to several cloudsbeing fully occupied while, concurrently, other clouds have significantresource vacancies. A client may use a cloud-monitoring tool to find acloud having sufficient free resources for a specific service.

The present invention introduces a placement engine configured toreceive service requests from clients and determine, for each servicerequest, an available cloud of highest merit measure.

FIG. 1 illustrates a system 100 for expediting and enhancing cloudservices. A plurality 150 of placement engines 160 continuouslycommunicate with individual clouds 120 of a plurality 112 of clouds toacquire cloud-discovery data 164 characterising each cloud. Suchcloud-discovery data may cover current free resources, projected freeresources, current service-queueing delay, projected service-queueingdelay, cost of usage, however defined, etc.

The term “client” is used herein to refer to a communication deviceconfigured to communicate with individual clouds 120 and with individualplacement engines 160. Generally, a business organization may employmultiple communication devices (multiple clients) to interact with theclouds 120. The plurality 150 of placement engines 160 receive servicerequests from a plurality 102 of clients 110. Each service requestdetails a service definition 162 indicating resource requirements andservice-quality expectation.

Each cloud 120 is a hardware entity. The clouds 120 are naturallygeographically distributed. In fact, a single cloud 120 may employ ageographically distributed data center. Likewise, the clients 110 aregenerally geographically distributed. The task of characterizing theclouds 120 may be divided among the placement engines 160 so that eachplacement engine communicates with a respective subset of the clouds120. The characterization information may then be pooled.

A placement engine 160 captures clouds' information and servicerequirements for educated automatic selection of cloud computingservers. A client sends a service request to a selected placement engine1560. Upon receiving a placement recommendation 168 identifying apreferred cloud for the requested server, the client exchanges data 122with the preferred cloud; the data may include metadata as well as bulkdata.

FIG. 2 illustrates components of a modular placement engine 160. Theplacement engine essentially comprises a cloud characterization module220, a storage medium 240, and a cloud-recommendation engine 260. Thecloud-characterization module exchanges cloud-discovery data with adesignated set of clouds. The acquired cloud-characterization datarelates to a predefined set of characteristics. A canonicalizationmodule converts the cloud-characterization data into a set ofdimensionless merit vectors each of which corresponding to a respectivecloud.

FIG. 3 illustrates a variation of the modular placement engine of FIG. 2where two or more cloud recommendation modules 260 may communicate withdifferent sets of clients to receive service requests and returnrespective recommendations.

FIG. 4 illustrates organization of a cloud-characterization module 220.Module 220 may be configured to include units 420, 440, 460, and 480each of which comprising a memory device, or a respective partition of amemory device, storing processor executable instructions causing atleast one processor to perform a respective function.

Unit 420 is configured to acquire a list of encoded definitions ofresource types and a list of encoded definitions of cloudcharacteristics of interest.

Unit 440 is configured to monitor the plurality 112 of clouds 120 toacquire information relevant to provisioned resources and time-varyingresource availability of each cloud 120, as well as data characterizingthe clouds individually.

Unit 460 is configured to convert the acquired cloud characterizationdata into a canonical form where a characteristic of a cloud isexpressed as a dimensionless “merit” having a value bounded betweenpredefined limits. The predefined limits are preferable 0.0 and 1.0. Themerits corresponding to different characteristics may be defined to:consistently trend towards a sought optimum value as the magnitude of amerit increases; or consistently trend towards a sought optimum value asthe magnitude of a merit decreases. Without loss of generality, theformer is used throughout the description below. For example, the costof service and speed of processors may be selected as two of thecharacteristics of clouds. A high cost is a disadvantage while a highprocessing speed is an advantage. Using cost as the sole criterion forselecting a preferred cloud 120 of the plurality of clouds, the cloudcorresponding to minimum cost would be selected. Using processing speedas the sole criterion, the cloud corresponding to highest processingspeed would be selected. Since both low cost and high processing speedsare desirable characteristics, but a cloud providing the lowest cost maynot provide the highest processing speed of all clouds that areavailable for a specific service, the clouds 120 of the plurality 112 ofclouds may be individually appraised according to a weighted sum ofrespective cloud valuations with respect to service cost and processingspeed.

With an arbitrary number of predefined characteristics, with somecharacteristics, such as cost and delay, trend towards optimality astheir respective values decrease, while other characteristics, such asprocessing speed, memory speed, and memory capacity, trend towardsoptimality as their respective values increase, a canonicalrepresentation of the characteristics need be explored. The soughtcanonical representation would also circumvent the difficulty ofcomparing clouds arising from characteristics' measurement units ofdiffering dimensions and widely differing quantifications.

As mentioned above, service cost may be selected as one of the cloudscharacteristics. A service, however, may comprise multiple servicefacets with the service cost itemized for allocation of each facet. Tofacilitate cloud valuation based on cost, according to an embodiment ofthe present invention, a “service basket” or a “service bundle” is useda service unit for costing purposes. The service unit is a predefinedlist of service items of predefined proportions to be used forevaluating the cost of service of a specific cloud.

Unit 460 structures the merits of each cloud with respect to eachcharacteristic to form merit vectors. Each merit vector corresponds to arespective cloud and comprises a merit value (a scalar) for eachcharacteristic according to a predefined order.

Unit 480 is configured to organize storage medium 240 to facilitateinsertion and retrieval of the resource availability data acquired inunit 440 and merit vectors generated in unit 460.

FIG. 5 illustrates organization of a cloud-recommendation module 260.Module 260 may be configured to include units 520, 540, 560, and 580each of which comprising a respective memory device, or a respectivepartition of a memory device, storing processor executable instructionscausing at least one processor to perform a respective function.

Unit 520 is configured to acquire for each registered client (i.e., aclient that has previously engaged the cloud-recommendation module) arespective significance vector indicating significance of each cloudcharacteristic, based on the list of encoded definitions of cloudcharacteristics of interest, to each service type of a predefined listof service types. Unit 520 assembles the information in a suitable datastructure to facilitate insertion, update, and retrieval of thesignificance indicators. The table of FIG. 20, to be described below,indicates significance of each characteristic of the predefined set ofcloud characteristics of interest to each service type of a plurality ofpredefined service types for a specific client. The significance level\of a cloud characteristic to a service type may vary from one client toanother. Thus, the significance levels may be determined for eachregistered client separately. However, the clients may be grouped into anumber of categories according to some measure of similarity and a table(generally a suitable data structure) of significance levels may becreated for each client category. The characteristics' significanceindicators, whether determined for individual clients or for clientcategories, are stored in a memory device 280 (FIG. 2). Thecharacteristic's significance indicators are structured intosignificance vectors. Each significance vector corresponds to arespective {service-client} pair or {service-client category} pair andcomprises a significance indicator (a scalar) for each characteristicaccording to a predefined order. The significance indicator ispreferably normalized to be within the interval 0 to 1.0.

Unit 540 is configured to receive a service request from a client wherethe request indicates a service type and requisite resources of apredefined list of resource types. If the client is a registered client,information specific to the client of significance of individual cloudcharacteristics to the service type may be retrieved from memory device280. Otherwise, the received service request may explicitly definerelevance of the service to each cloud characteristic based on the listof encoded definitions of cloud characteristics of interest. Suchinformation is then added to the characteristics' significance data(memory 280).

Unit 550 is configured to compare the requisite resources with theavailable resources, which generally vary with time) of each cloud 120of the plurality 112 of clouds. A set of eligible clouds, each of whichhaving sufficient available resources, is considered for placing thesought service.

Unit 560 is configured to determine a dot product of a significancevector of a specific service and a merit vector of a specific cloud. Thevalue of the dot product (a scalar) of the two vectors is a measure ofservice advantage of engaging the specific cloud to provide the soughtservice. Thus, for the received service, unit 560 determines asignificance vector. Unit 560 then accesses storage medium 240 toretrieve a merit vector for each cloud of the set of eligible clouds,and computes a dot product of the significance vector and each retrievedmerit vector.

Unit 580 communicates with the requesting client to recommend installingthe service at the cloud corresponding to the highest dot product.

FIG. 6 illustrates an arrangement of the system of FIG. 1 where aplacement engine 160 and four stand-alone cloud recommendation modules260(1), 260(2), 260(3), and 260(4) connect to a plurality of clients 110and to a plurality of clouds 120 through a network 620. Each ofstand-alone cloud-recommendation modules 260(1) and 260(2) is coupled toa respective satellite storage medium; 240(1) and 240(2), respectively.The content of each of satellite storage medium 240(1) andsatellite-storage medium 240(2) is an up-to-date copy of the content ofmaster storage medium 240(0) which is directly coupled to the placementengine 160 and is frequently updated according to information acquiredthrough continuous monitoring of the plurality of clouds. Each ofstand-alone cloud-recommendation modules 260(3) and 260(4) acquirescloud resource-availability data, as well as cloud merit vectors, frommaster storage-medium 240(0) or a satellite storage medium 240(1) or240(2), through network 620. Satellite storage media 240(1) and 240(2)are frequently updated, through network 620, according to contentchanges of mater storage medium 240(0). A client 110 communicates withthe placement engine or any of the stand-alone recommendation modules260(1) to 260(4).

FIG. 7 illustrates operations 700 of a placement engine 160. Thecomponents of the placement engine are illustrated as interface module210, cloud characterization module 220, cloud-characteristics storagemedium 240, and cloud selection (cloud recommendation) module 260. Thecomponents may be collocated to intercommunicate directly. Thecomponents 220, 240, and 260 may be spatially distributed where theyintercommunicate through any network, in which case each would require arespective network interface.

The cloud-characterization module 220 performs the functions of:

-   -   (1) acquiring cloud information relevant to resource        availability and cloud-characteristic valuation;    -   (2) updating the content of cloud-characteristics storage medium        240 as the need arises;    -   (3) computing new merit vectors; and    -   (4) updating existing merit vectors.

The cloud-characterization module 220 stores the resource availabilitydata, the cloud-characteristic valuation data, and the merit vectors incloud-characteristics storage medium 240.

The cloud-selection module 260 acquires resource-availability data 730as well as cloud valuation data 740 from storage medium 240.

The network interface 210 comprises a service-definition module 720which receives clients' service requests 750 and formulates, for eachrequest, service-definition data which includes data 770 identifyingrequired resources, and data 780 identifying relevance of requestedservice to cloud characteristics.

FIG. 8 illustrates connectivity 800 of cloud selection module 260(1) ofthe system of FIG. 6 to clouds 120(0), 120(1), 120(2), and 120(3)through communication paths 850 within network 620 for acquisition ofcloud characteristics.

FIG. 9 illustrates connectivity 900 of the integrated placement engine240 of the system of FIG. 6 to clouds 120(0), 120(1), 120(2), and 120(3)through communication paths 950 acquisition of cloud characteristics.

FIG. 10 illustrates an example, 1000, of interaction of clients 110 withcloud selection module to determine preferred clouds. Client 110(0)communicates a service request to stand-alone cloud selection module260(4) which recommends cloud 120(0). Client 110(0) then establishes adual path 1010(0) through network 620. Another client 110(2) alsocommunicates a service request to stand-alone cloud-selection module2640(4) which recommends cloud 120(3). Stand-alone cloud-selectionmodule 260(4) selected satellite cloud-characterization storage medium240(1) for acquisition of cloud-related data.

FIG. 11 illustrates an example, 1100, of interaction of clients 110 withplacement engine 240 of the system of FIG. 6 to determine preferredclouds. Client 110(2) communicates a service request to placement engine240 which recommends cloud 120(2). Client 110(5) then establishes a dualpath 1110(2) through network 620 to cloud 120(2). Client 110(2)communicates a service request to placement engine 240 which recommendscloud 120(3). Client 110(5) then establishes a dual path 1110(1) throughnetwork 620 to cloud 120(3).

FIG. 12 illustrates organization of resource-related data 730 stored incloud-characterization storage medium 240. As described above,cloud-characterization module 220 monitors the plurality 112 of clouds120 to acquire information relevant to provisioned or allocableresources and time-varying resource availability of each cloud 120. Acloud-computing provider may limit the amount of resources, of theentire provisioned resources, that may be accessible to a single client.The allocable resources to a particular client may be determinedaccording to a service-level agreement. The occupancy of a cloud, i.e.,the proportion of the cloud's resources that are active or assigned toclients, fluctuates with time. Thus, the cloud-characterization module220 frequently updates the content of the cloud-characterization medium240.

As illustrated in FIG. 12, for each cloud k, 0≤k<K, K being the totalnumber of clouds under consideration, potential allocable resources1220, denoted R_(k,h), 0≤h<H, as well as currently available resources1240, denoted r_(k,h), H being the number of resource types underconsideration, are maintained in storage medium 240.

FIG. 13 illustrates exemplary organization of cloud-valuation data 740stored in cloud-characterization storage medium 240. Indices 1310identify the cloud characteristics of a list of relevant cloudcharacteristics. A valuation 1320 of each cloud characteristic of a listof relevant cloud characteristics is determined for each cloud of the Kclouds.

The characteristic of index 0 represents service cost, denoted c. Thevaluations c for the 12 clouds (K=12) are denoted c₀, c₁, . . . , c₁₁.The valuations are canonicalized to produce corresponding merits denotedα_(0,0), α_(1,0), . . . , α_(11,0), as indicated in FIG. 14.

The characteristic of index 2 represents available processing capacity,denoted p. The valuations of p for the 12 clouds (K=12) are denoted p₀,p₁, . . . , p₁₁. The valuations are canonicalized to producecorresponding merits denoted α_(0,2), α_(1,2), . . . , α_(11,2).

The characteristic of index 5 represents service delay, denoted d. Thevaluations of the service delay for the 12 clouds (K=12) are denoted d₀,d₁, . . . , d₁₁. The valuations are canonicalized to producecorresponding merits denoted α_(0,5), α_(1,5), . . . , α_(11,5).

The characteristic of index 8 represents available storage capacity,denoted q. The valuations of q for the 12 clouds (K=12) are denoted q₀,q₀, . . . , q₁₁. The valuations are canonicalized to producecorresponding merits denoted α_(0,8), α_(1,5), . . . , α_(11,8).

Characteristics c and d (columns 0 and 5 of the matrix of FIG. 12) aretype-2 characteristics. An increment of c_(k) (service cost of cloud k)decreases the overall merit of cloud k, 0≤k<K. Likewise, an increment ofd_(k) (service delay of cloud k) decreases the overall merit of cloud k,0≤k<K.

Characteristics p and q (columns 2 and 8 of the matrix of FIG. 12) aretype-1 characteristics. An increment of p_(k) (processing capacity ofcloud k) increases the overall merit of cloud k, 0≤k<K. Likewise, anincrement of q_(k) (service delay of cloud k) increases the overallmerit of cloud k, 0≤k<K.

FIG. 14 illustrates a set 1400 of metric vectors 1440 of the clouds. Theelements of a metric vector of a cloud k are canonicalizedcloud-valuation data corresponding to each of the characteristics ofindices (0) to (8) based on cloud-valuation data of FIG. 13.

Merit vector 1440 a appraises the cloud of index 0. The elements{α_(0,0), α_(0,1), α_(0,2), α_(0,3), α_(0,4), α_(0,5), α_(0,6), α_(0,7),α_(0,8)} are canonicalized values of corresponding valuations of row 0(cloud of index 0) of FIG. 13. Metrics α_(0,0), α_(0,2), α_(0,5), andα_(0,8) correspond to valuations c₀, p₀, d₀, and q₀.

The elements {α_(11,0), α_(11,1), α_(11,2), α_(11,3), α_(11,4),α_(11,5), α_(11,6), α_(11,7), α_(11,8)} are canonicalized values ofcorresponding valuations of row 11 (cloud of index 11) of FIG. 13.Metrics α_(11,0), α_(11,2), α_(11,5), and α_(11,8) correspond tovaluations c₁₁, p₁₁, d₁₁, and q₁₁.

Canonicalization of Characteristics Valuations

As described above, with reference to FIG. 4, the cloud-characterizationmodule 220 converts acquired cloud characterization data into acanonical form where a characteristic of a cloud is expressed as adimensionless merit having a value bounded between predefined limits;preferably 0.0 and 1.0. The merits corresponding to differentcharacteristics consistently trend towards a sought optimum value as themagnitude of a merit increases. Thus, as valuation of a characteristicsuch as service cost decreases, the corresponding merit increases and asvaluation of a characteristic such as processing capacity increases, thecorresponding merit increases.

A valuation, x, of a cloud characteristic may vary significantly betweenclouds 120. Depending on the characteristic type, the overall advantageof the cloud may increase as x increases or as x decreases. Tofacilitate consideration of multiple characteristics of different types,the valuation x is canonicalized, where x is converted into a meritμ_(x) which consistently trend towards a sought optimum value. Severalimplementations of such canonicalization may be considered.

According to one embodiment of the canonicalization process, illustratedin FIG. 15 and FIG. 16, the merit is determined based on extreme valuesX_(min) and X_(max) of x; X_(min) denoting the minimum value of x andX_(max) denoting the maximum value of x.

According to a first implementation of the canonicalization process, thecharacteristics are considered one at a time, and for eachcharacteristic, corresponding valuations for all of the clouds areexamined to determine a respective minimum valuation X_(min) and arespective maximum valuation X_(max) for each characteristic underconsideration.

The set of predefined characteristics may comprise at least one type-1characteristic where increasing a respective valuation increases arespective cloud appraisal. For a specific type-1 characteristic, of aspecific cloud, the characteristic having a valuation x, a correspondingmerit is determined as:

μ_(x)=(x−X _(min))/(X _(max) −X _(min)).

The set of predefined characteristics may comprise at least one type-2characteristic where decreasing a respective valuation increases arespective cloud appraisal. For a specific type-2 characteristic, of aspecific cloud, the characteristic having a valuation x, a correspondingmerit is determined as:

μ_(x)=(X _(max) −x)/(X _(max) −X _(min)).

FIG. 15 illustrates canonicalization 1500 of two cloud characteristics:processing capacity and storage capacity (type-1 characteristics).

The processing-capacity valuation, denoted p, for the plurality 112 ofclouds, varies between P_(min) and P_(max). A processing-capacity merit,μ_(p), is defined as:

μ_(p)=(p−P _(min))/(P _(max) −P _(min)).

Thus, a cloud having a processing-capacity valuation p equal to P_(min),is given a merit of 0.0 while a cloud having a processing-capacityvaluation of P_(max) is given a merit of 1.

Likewise, the storage-capacity valuation, denoted q, for the plurality112 of clouds, varies between Q_(min) and Q_(max). A storage-capacitymerit, μ_(q), is defined as:

μ_(q)=(q−Q _(min))/(Q _(max) −Q _(min)).

Thus, a cloud having a storage-capacity valuation q equal to Q_(min), isgiven a merit of 0.0 while a cloud having a processing-capacityvaluation of Q_(max) is given a merit of 1.

For each of the two characteristics, the valuation trends towardsoptimality (increasing the overall advantage of a respective cloud) asthe valuation increases.

FIG. 16 illustrates canonicalization 1600 of two cloud characteristics:service cost and service delay (type-2 characteristics).

The service-cost valuation, denoted c, for the plurality 112 of clouds,varies between C_(min) and C_(max). A service-cost merit, μ_(c), isdefined as:

μ_(c)=(C _(max) −c)/(C _(max) −C _(min)).

Thus, a cloud having a service-cost valuation c equal to C_(min), isgiven a merit of 1.0 while a cloud having a cost valuation of C_(max) isgiven a merit of 0.

Likewise, the estimated service-delay valuation, denoted d, for theplurality 112 of clouds, varies between D_(min) and D_(max). Aservice-delay merit, μ_(d), is defined as:

μ_(d)(D _(max) −d)/(D _(max) −D _(min)).

Thus, a cloud having a service-delay valuation d equal to D_(min), isgiven a merit of 1.0 while a cloud having a cost valuation of D_(max) isgiven a merit of 0.

For each of the two characteristics, the valuation trends towardsoptimality (increasing the overall advantage of a respective cloud) asthe valuation decreases.

According to a variation of the method illustrated in FIG. 15 and FIG.16, the extreme values X_(min) and X_(min) of x may be replaced with alower bound of x and an upper bound of x, respectively, corresponding topredefined values a₁ and a₂, 0.0<a₁<a₂<1.0, (for example 0.04 and 0.96,respectively) of a cumulative distribution of x over all clouds.

Thus, for each characteristic, a cumulative distribution of valuationsover all of the clouds of the plurality of clouds is generated. Avaluation lower bound V_(min) of a specific characteristic correspondsto a predefined value a₁ of the cumulative distribution. A valuationupper bound V_(max) of the specific characteristic corresponds to apredefined value a₂ of the cumulative distribution, 0.0<a₁<a₂<1.0.

A set of predefined characteristics may comprise at least one type-1characteristic where increasing a respective valuation increases arespective cloud appraisal. A merit corresponding to a specific type-1characteristic for a specific cloud having a valuation x is thendetermined as:

μ_(x)=0.0 for x<V _(min);

μ_(x)=(x−V _(min))/(V _(max) −V _(min)), for V _(min) ≤x≤V _(max)

μ_(x)=1.0for x>V _(max).

The set of predefined characteristics may comprise at least one type-2characteristic where decreasing a respective valuation increases arespective cloud appraisal. A merit corresponding to a specific type-2characteristic for a specific cloud having a valuation x is determinedas:

μ_(x)=1.0 for x<V _(min);

μ_(x)=(V _(max) −x)/(V _(max) −V _(min)), for V _(min) ≤x≤V _(max)

μ_(x)=0.0for x>V _(max).

According to another embodiment of the canonicalization process, themerit is determined based on a predefined reference valuation of acharacteristic. For valuation, x, of a specific cloud characteristic ofreference valuation X_(ref), the merit is determined according to thetransformation:

μ_(x)=x/(x+X_(ref)) for a type-1 characteristic where increasing xincreases the overall advantage of a respective cloud, or

μ_(x)=X_(ref)/(x+X_(ref)) for a type-2 characteristic where decreasing xincreases the overall advantage of the respective cloud.

In either case, μx has asymptotic values of 0.0 and 1.0:

-   -   (i) for a type-1 characteristic, μ_(x) tends to 0.0 as x tends        to 0.0 and tends to 1.0 as x tends to infinity; and

(ii) for a type-2 characteristic, μ_(x) tends to 1.0 as x tends to 0.0and tends to 0.0 as x tends to infinity.

Xref=64.0 units, type-1 characteristic

x 5.0 16.0 42.0 62.0 89.0 190.0 328.0 μ_(x) 0.072 0.20 0.396 0.492 0.5820.748 0.837Xref=80.0 units, type-2 characteristic

x 9.0 20.0 82.0 120.0 280.0 314.0 564.0 μ_(x) 0.899 0.80 0.494 0.4000.778 0.203 0.124

FIG. 17 illustrates exemplary valuations 1740 of cloud characteristicsand derived cloud merit vectors 1750 for the case of only four clouds(K=4), indexed as 0, 1, 2, and 3. The individualcharacterisation-specific valuations 1740 of the clouds are indicated inmatrix 1710. Corresponding canonicalized metrics, determined accordingto the method depicted in FIG. 15 and FIG. 16, are indicated in matrix1720. The indices 1310 of type-2 characteristics are distinguished withthe superscript “*”. Thus, the characteristics of indices 0, 4, 5, and 7are type-2 characteristics. The remaining characteristics are type-1characteristics.

The valuations of the four clouds according to the characteristic ofindex (0), which is a type-2 characteristic, are determined to be 122.4,40.0, 240.0, and 50.9, respectively. The minimum and maximum values are40.0 and 240.0, respectively. Thus, the corresponding canonicalizedmetrics are determined as (FIG. 16):

{(240.0-122.4)/(240.0-40.0)},

{(240.0-40.0)/(240.0-40.0)},

{(240.0-240.0)/(240.0-40.0)}, and

{(240.0-50.9)/(240.0-40.0)}.

The results, 0.588, 1.0, 0.0, and 0.946 are indicated in the column ofindex (0) of matrix 1720.

The valuations of the four clouds according to the characteristic ofindex (6), which is a type-1 characteristic, are determined to be 42.9,30.0, 80.0, and 68.2, respectively. The minimum and maximum values are30.0 and 80.0, respectively. Thus, the corresponding canonicalizedmetrics are determined as (FIG. 15):

{(42.9-30.0)/(80.0-30.0)},

{(30.0-30.0)/(80.0-30.0)},

{(80.0-30.0)/(80.0-30.0)}, and

{(68.2-30.0)/(80.0-30.0)}.

The results, 0.258, 0.0, 1.0, and 0.764 are indicated in the column ofindex (6) of matrix 1720.

FIG. 18 illustrates organization of resource-requirement data 770 (FIG.7) for different service types for a specific client or a specificclient group. For each service type, a list 1820 of nominal resourcerequirements and a list 1840 of current resource requirements areacquired.

FIG. 19 illustrates data 1900 used for determining eligible clouds fromamong a target set of five clouds indexed as (0) to (4), for a specificservice. Resource requirement data 1820 and 1840 andresource-availability data 1220 and 1240 are compared to determine cloudcompatibility for a specified service.

For a service type under consideration, the service type of index (2)for example, the nominal resource requirements are denoted U_(2,h),0≤h<H, and the current resource requirements are denoted u_(2h), 0≤h<H,the total number H of resource types being 5 in the example of FIG. 19.

As illustrated in FIG. 12, for each cloud k, K being the total number ofclouds under consideration, potential allocable resources 1220, denotedR_(k,h), 0≤h<H, as well as currently available resources 1240, denotedr_(k,h), are maintained in storage medium 240.

To fulfil the current requirements, a cloud of index k is qualified as acandidate cloud for the requested service if u_(2,h)≤r_(k,h), for eachvalue of h.

To fulfil requirements relevant to some contractual agreements, a cloudis qualified if U_(2,h)≤R_(k,h), for each value of h.

FIG. 20 illustrates organization 2000 of significance coefficients 2020of cloud characteristics for each service type for a specific client ora specific client group into vectors 2040 of significant coefficients.Significance coefficients 2020 of cloud characteristics with respect toa specific service type for a specific client or a specific client groupare determined a priori. The significance coefficient of acharacteristic of index j for a service type of index s, 0≤j<J, 0≤s<S, Jbeing the total number of cloud characteristics under consideration andS being the total number of service types, is denoted β_(s,j). Thesignificance coefficients are preferably organized into a matrixstructure as illustrated in FIG. 20. A vector 2040 of significancecoefficients with respect to a specific service type for a specificclient is used in determining an overall merit (an overall appraisal) ofindividual clouds.

FIG. 21 illustrates a significance vector 2140 each element 2120 ofwhich, denoted γ_(j), represents a significance coefficient of a cloudcharacteristic of index j, 0≤j<J, J being the total number of cloudcharacteristics. The significance coefficient corresponds to a specificclient, or a specific group of clients, and is independent of servicetype. Significance vector 2140 may be used instead of theservice-type-specific significance vector 2040.

FIG. 22 illustrates a matrix 2200 representing cloud compatibility foreach predefined service type. Compatibility of a cloud for a specificservice is determined according to the process of FIG. 19. A compatiblecloud 2210 for a specified service is a candidate for providing thespecified. An incompatible cloud 2220 for the specified service is notconsidered for the specified service but may be selected for otherservices.

The merit vectors 1440 (FIG. 14) are based on intrinsic characteristicsof individual clouds. However, the process of selecting a cloud for aspecific client, may take into account the physical distance (hence theensuing propagation delay) between the specific client and each of thecandidate clouds.

FIG. 23 illustrates matrix 2300 of client-cloud distances (orpropagation delays). With a number of clients (100 in the example ofFIG. 23 indexed as 0 to 99) seeking cloud services through network 620(FIG. 6), a cloud-selection module 260 may store distances (orpropagation delays) from each registered client to each cloud of theplurality 112 of clouds as indicated in the matrix of FIG. 23. A columnof the matrix corresponding to a client index 2310 stores distances 2320S_(g,k) (one way or round trip) to each cloud site 0≤g<G, ≤k<K, G beingthe number of clients (100 in the example of FIG. 23) and K being thenumber of clouds (12 in the example of FIG. 23). Although FIG. 23illustrates one row of the matrix for each cloud, a specific cloud(belonging to a specific provider) may have multiple geographicallydistributed access sites) for which the distances to a client may bestored.

The entries of matrix 2300 may be determined from knownlongitude-latitude coordinates of client premises and cloud premises.However, it may be feasible to acquire round-trip propagation delaysbetween a client and each cloud site.

To take the distances (or propagation delays) into account, the distance(or propagation delay) may be canonicalized to determine respectivemerit values and a predetermined fraction of the distance merit(propagation-delay merit) may be added to the dot product of respectivemerit vector 1440 (FIG. 14) and significance vectors 2040 (FIG. 20) forthe purpose of selecting a preferred cloud. The distance (or propagationdelay) is a type-2 characteristic and would be canonicalized as such.

FIG. 24 illustrates processes 2400 of determining cloud merit vectorsimplemented at cloud-characterization module 220 (FIG. 2, FIG. 4). Ahardware processor of module 220 acquires a list of clouds 120 of theplurality 112 of clouds and a list of relevant cloud characteristics(process 2410). At least one hardware processor of module 220communicates with individual clouds to acquire information ofprovisioned resources, client-specific allocable resources, and currentresource availability (process 2420).

In process 2430, the at least one hardware processor quantifies, foreach cloud 120 each characteristic of the list of relevant cloudcharacteristics to produce a characteristic valuation for eachcloud-characteristic pair. The valuations are organized into arespective data structure. For ease of illustration, the characteristicsvaluations are organized into a matrix structure (FIG. 13) with eachcolumn of the matrix representing valuations corresponding to arespective characteristic and each row representing valuationscorresponding to a respective cloud.

In process 2440, the at least one hardware processor, canonicalizes eachcolumn of the matrix to produce dimensionless cloud-characteristicsmerits. In accordance with an embodiment, each merit is bounded within apredefined dimensionless interval; preferable the interval [0.0, 1.0].As described above, with reference to FIG. 4, merits corresponding todifferent characteristics may be defined to either consistently trendtowards a sought optimum value as the magnitude of a merit increases orconsistently trend towards a sought optimum as the magnitude of a meritdecreases.

FIG. 25 illustrates cloud-selection processes 2500 implemented acloud-recommendation module 260 (FIG. 2, FIG. 5). At least one hardwareprocessor executes software instructions configured to perform processes2510 to 2570.

Process 2510 receives a service request from a client 110, the requestspecifies a service type of a list of predefined service types.

Process 2520 acquires resource requirements corresponding to therequested service.

Process 2530 acquires data indicating resource availability for eachcloud 120 of the plurality 112 of clouds. The data would be retrievedfrom storage medium 240 which maintains time-varying resourceavailability data for each cloud 120 of the plurality 112 of clouds.

Process 2540 identifies a set of eligible clouds of the plurality 112 ofclouds, where each eligible cloud has sufficient free resources tohandle the requested service.

Process 2550 acquires a significance vector corresponding to thespecified service.

Process 2560 determines a dot product of the significance vector and amerit vector of each eligible cloud. The merit vectors may be read fromstorage medium 240.

Process 2570 recommends the eligible cloud corresponding to the highestdot product to the client.

A merit of a cloud k with respect to a cloud characteristic j is denotedα_(k,j). A significance coefficient of a characteristic of index j for aservice type of index s, 0≤j<J, 0≤s<S, is denoted β_(s,j), K being thetotal number of clouds 120 of the plurality of clouds 120, J being thetotal number of cloud characteristics under consideration, and S beingthe total number of service types,

A merit vector of a cloud k comprises elements:

-   -   {α_(k,0), α_(k,1), α_(k,2), . . . α_(k,J-2), α_(k,J-1)}.

A significance vector of a service s (for a specific client or aspecific client group) comprises elements:

-   -   {β_(s,0), β_(s,1), β_(s,2), . . . β_(s,J-2), β_(s,J-1)}.        The dot product of a merit vector of a cloud k and a        significance vector of a service s, i.e., the appraisal of        candidate cloud k for a service s is determined as:    -   α_(k,0)×β_(s,0)+α_(k,1)×β_(s,1)+α_(k,2)×β_(s,2) . . .        +α_(k,J-2)×β_(s,J-2)+α_(k,J-1)×β_(s,J-1).

A service may comprise multiple components that may be directed to asingle cloud or more than one cloud. Upon receiving a request forservice, the placement engine may identify all clouds that can handlethe requirements of the multiple components together and select a cloudof highest merit. Alternatively, the placement engine may treat thecomponents separately and identify for each component specific cloudsthat can handle respective requirements and select a cloud of highestmerit. Thus, the components may be treated as separate services exceptin the case of temporal constraints where activation of the componenthas to take place concurrently or within a specified time window. Inthis case, after ensuring concurrent availability of resources inmultiple clouds, the differing propagation delays between the client'sdevice and the individual clouds as well as the differing queueingdelays at the clouds may have to be taken into consideration.

Processor-executable instructions causing respective hardware processorsto implement the processes described above may be stored inprocessor-readable media such as floppy disks, hard disks, opticaldisks, Flash ROMS, non-volatile ROM, and RAM. A variety of processors,such as microprocessors, digital signal processors, and gate arrays, maybe employed.

Although specific embodiments of the invention have been described indetail, it should be understood that the described embodiments areintended to be illustrative and not restrictive. Various changes andmodifications of the embodiments shown in the drawings and described inthe specification may be made within the scope of the following claimswithout departing from the scope of the invention in its broader aspect.

1. A method of allocating cloud computing resources comprising:configuring an engine employing a processor to perform processes of:acquiring from each cloud of a plurality of clouds data defining:available resources; individual valuations of characteristics of a setof predefined characteristics; for each characteristic of the set ofpredefined characteristics canonicalizing respective valuations todetermine corresponding merits of said each cloud where each merit is:dimensionless; bounded within a predefined interval; and oriented sothat an increment of said each merit increases an appraisal of arespective cloud; receiving from a client a service request specifying aservice type of a set of predefined service types; acquiring for saidservice type data defining: requisite resources; and a significancevector comprising a significance indicator of said each characteristic;determining an appraisal of each cloud having available resources toprovide said requisite resources as a function of respective merits andsaid significance vector and instructing said client to direct saidservice request to a cloud of highest appraisal.
 2. The method of claim1 further comprising: organizing all merits determined according to saidcanonicalizing into a plurality of merit vectors, each merit vectorcomprising merits corresponding to a respective cloud and each of thepredefined characteristics considered in a predetermined order; andselecting said function as a dot product of a merit vector of said eachcloud and said significance vector.
 3. The method of claim 1 furthercomprising determining for said each characteristic over all clouds ofthe plurality of clouds: a respective minimum valuation X_(min); and arespective maximum valuation X_(max).
 4. The method of claim 3 wherein:said set of predefined characteristics comprises at least one type-1characteristic where increasing a respective valuation increases arespective cloud appraisal; and a merit corresponding to a specifictype-1 characteristic for a specific cloud having a valuation x isdetermined as:μ_(x)=(x−X _(min))/(X _(max) −X _(min)).
 5. The method of claim 3wherein: said set of predefined characteristics comprises at least onetype-2 characteristic where decreasing a respective valuation increasesa respective cloud appraisal; and a merit corresponding to a specifictype-2 characteristic for a specific cloud having a valuation x isdetermined as:μ_(x)=(X _(max) −x)/(X _(max) −X _(min)).
 6. The method of claim 1further comprising acquiring for said each characteristic a respectivepredefined reference valuation X_(ref).
 7. The method of claim 6wherein: said set of predefined characteristics comprises at least onetype-1 characteristic where increasing a respective valuation increasesa respective cloud appraisal; and a merit corresponding to a specifictype-1 characteristic for a specific cloud having a valuation x isdetermined as:μ_(x) =x/(x+X _(ref)).
 8. The method of claim 6 wherein: said set ofpredefined characteristics comprises at least one type-2 characteristicwhere decreasing a respective valuation increases a respective cloudappraisal; and a merit corresponding to a specific type-1 characteristicfor a specific cloud having a valuation x is determined as:μ_(x) =X _(ref)/(x+X _(ref)).
 9. The method of claim 1 furthercomprising determining for said each characteristic: a respectivevaluation lower bound V_(min) corresponding to a predefined value a₁ ofa cumulative distribution of valuations of said each characteristic overall clouds of the plurality of clouds; and a respective valuation upperbound V_(max) corresponding to a predefined value a₂ of the cumulativedistribution, 0.0<a₁<a₂<1.0.
 10. The method of claim 9 wherein: said setof predefined characteristics comprises at least one type-1characteristic where increasing a respective valuation increases arespective cloud appraisal; and a merit corresponding to a specifictype-1 characteristic for a specific cloud having a valuation x isdetermined as:μ_(x)=0.0 for x<V _(min);μ_(x)=(x−V _(min))/(V _(max) −V _(min)), for V _(min) ≤x≤V _(max)μ_(x)=1.0for x>V _(max).
 11. The method of claim 9 wherein: said set ofpredefined characteristics comprises at least one type-2 characteristicwhere decreasing a respective valuation increases a respective cloudappraisal; and a merit corresponding to a specific type-2 characteristicfor a specific cloud having a valuation x is determined as:μ_(x)=1.0 for x<V _(min);μ_(x)=(V _(max) −x)/(V _(max) −V _(min)), for V _(min) ≤x≤V _(max)μ_(x)=0.0for x>V _(max).